//
//  HMDataModelTabBarContentView.m
//  01-HMTabBarContentView控件开发
//
//  Created by teacher on 2017/7/23.
//  Copyright © 2017年 teacher. All rights reserved.
//

#import "HMDataModelTabBarContentView.h"
#import "HMTabBarContentView.h"
#import <Masonry/Masonry.h>

@interface HMDataModelTabBarContentView () <HMTabBarContentViewDataSource,HMTabBarContentViewDelegate>

@property (strong, nonatomic)   HMTabBarContentView     *tabBarContentView;

@property (strong, nonatomic)   NSArray                 *models;

@end

@implementation HMDataModelTabBarContentView

- (HMTabBarContentView *)tabBarContentView {
    if(_tabBarContentView == nil) {
        _tabBarContentView = [HMTabBarContentView new];
        _tabBarContentView.dataSource = self;
        _tabBarContentView.delegate = self;
        [self addSubview:_tabBarContentView];
        
        [_tabBarContentView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.edges.equalTo(self);
        }];
    }
    return _tabBarContentView;
}

/**
 设置数据模型
 
 @param dataModel 数据
 */
- (void)setDataModel:(NSArray *)dataModel {
    self.models = dataModel;
}

/**
 刷新界面
 */
- (void)reloadData {
    [self.tabBarContentView reloadData];
}


#pragma mark - HMTabBarContentViewDataSource -
/**
 返回选项的数量
 
 @param tabBarContentView 当前控件
 @return 数量
 */
- (NSInteger)numberOfItemsInTabBarContentView:(HMTabBarContentView *)tabBarContentView {
    return self.models.count;
}


/**
 设置选项的标题
 
 @param tabBarContentView 当前控件
 @param index 选项下标
 @return 标题
 */
- (NSString *)tabBarContentView:(HMTabBarContentView *)tabBarContentView titleForItemAtIndex:(NSInteger)index {
    return self.models[index][@"title"];
}


/**
 设置内容视图
 
 @param tabBarContentView 当前控件
 @param index 选项下标
 @return 内容视图
 */
- (UIView *)tabBarContentView:(HMTabBarContentView *)tabBarContentView contentForItemAtIndex:(NSInteger)index {
    return self.models[index][@"view"];
}

#pragma mark - HMTabBarContentViewDelegate -
/**
 返回 tabBar 的高度
 
 @param tabBarContentView 当前控件
 @return 高度
 */
- (CGFloat)tabBarHeightInTabBarContentView:(HMTabBarContentView *)tabBarContentView {
    return self.tabBarHeight;
}

/**
 返回高亮选项的背景视图
 
 @param tabBarContentView 当前控件
 @return 背景视图
 */
- (UIView *)selectedTabBarItemBackgroundInTabBarContentView:(HMTabBarContentView *)tabBarContentView {
    /*
    UIView *view = [UIView new];
    UIView *bottomLine = [UIView new];
    bottomLine.backgroundColor = [UIColor orangeColor];
    [view addSubview:bottomLine];
    
    [bottomLine mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.bottom.equalTo(view);
        make.height.mas_equalTo(2);
    }];
    
    return view;
     */
    return self.selectedTabBarItemBackground;
}


/**
 定制选中的颜色
 
 @param tabBarContentView 当前控件
 @return 高亮颜色
 */
- (UIColor *)selectedTabBarItemTitleColorInTabBarContentView:(HMTabBarContentView *)tabBarContentView {
    return self.selectedTabBarItemTitleColor;
}

/**
 当选项被选中的时候回调
 
 @param tabBarContentView 当前控件
 @param index 选中索引
 */
- (void )tabBarContentView:(HMTabBarContentView *)tabBarContentView didSelectContentAtIndex:(NSInteger)index {
    if(self.itemDidSelectBlock) {
        self.itemDidSelectBlock(index);
    }
//    NSLog(@"item %zd 被选中",index);
}

@end
